#include "PersonajePacman.h"

#include "Pacman.h"
#include "Direccion.h"


PersonajePacman::PersonajePacman(TexturasPersonaje* texturas, ObjetoVivo* objeto ,const string& id): Personaje(texturas,objeto,id){
	this->movimientoAutomatico = false;
	//this->puntaje  = 0 ;
}

void PersonajePacman::sumarPuntos(int puntos){
	((Pacman*)(this->getObjeto()))->getJugador()->getMarcadorActual()->incrementarPuntaje((float)puntos);
	//this->puntaje = this->puntaje + puntos ;
}

int PersonajePacman::getPuntaje(){
	// Debo mostrar el marcador del Jugador, ya que el actual puede ser en algun momento el del enemigo
	return (int)((Pacman*)(this->getObjeto()))->getJugador()->getMarcadorDelJugador()->getPuntaje();
}

/*void PersonajePacman::calcularNuevaTextura(){
	this->textura = this->texturas->getProximaTextura();
}*/

void PersonajePacman::moverArriba(){
	Direccion* arriba = new Direccion(Direccion::ARRIBA);
	((Pacman*)(this->getObjeto()))->cambiarDireccion(arriba);
}

void PersonajePacman::moverAbajo(){
	Direccion* abajo = new Direccion(Direccion::ABAJO);
	((Pacman*)(this->getObjeto()))->cambiarDireccion(abajo);
}

void PersonajePacman::moverIzquierda(){
	Direccion* izq = new Direccion(Direccion::IZQUIERDA);
	((Pacman*)this->getObjeto())->cambiarDireccion(izq);
}

void PersonajePacman::moverDerecha(){
	Direccion* der = new Direccion(Direccion::DERECHA);
	((Pacman*)this->getObjeto())->cambiarDireccion(der);
}

void PersonajePacman::calcularNuevaTextura(){
	Direccion* dirActual = ((Pacman*)this->getObjeto())->getDireccion();
	if(dirActual){
		if(dirActual->esDerecha()){
			this->textura = this->texturas->getSiguienteDerecha();
		}else if(dirActual->esIzquierda()){
			this->textura = this->texturas->getSiguienteIzquierda();
		}else if(dirActual->esArriba()){
			this->textura = this->texturas->getSiguienteArriba();
		}else if(dirActual->esAbajo()){
			this->textura = this->texturas->getSiguienteAbajo();
		}
	}
}